#include <iostream>
#include <vector>
#include "BSplines.h" // 确保这个头文件中有any_BSplines类的定义

int main() {
    // 示例数据
    std::vector<double> x;
    std::vector<double> a;
    int n;
    std::cout << "请输入节点个数：" << endl;
    std::cin >> n;
    std::cout << "请输入节点：" << endl;
    for (int i = 0; i < n; ++i) {
        double value;
        std::cin >> value;
        x.push_back(value);
    }
        int degree;
    std::cout << "请输入样条的阶数：" << endl;
    std::cin >> degree; // 样条的阶数
    std::cout << "请输入系数：" << endl;
    for (int i = 0; i < n+degree-1; ++i) { 
        double value;
        std::cin >> value;
        a.push_back(value);
    }


    any_BSplines spline(a, degree, x); // 确保any_BSplines类有这个构造函数

    // 调用函数生成数据文件并绘制曲线
    // 确保x[0]和x[n-1]是有效的，且n至少为1
    if (n > 0) {
        spline.generate_and_plot_spline("spline_data.txt", "plot_spline.gp", x[0], x[n-1], 500);
    } else {
        std::cerr << "节点个数必须大于0。" << std::endl;
    }

    return 0;
}